1. Field of the Invention
The field of the invention pertains to a system and a method for controlling the usage of digital objects. Further, the invention extends to a system and a method for controlling the usage of digital objects in hardware and software components.
2. Description of the Related Technology
In the field of computing, components in an application are objects that (i) usually perform an isolated and specific function, (ii) include an implementation of this functionality, and (iii) include a well-defined interface that is used to interact with, and keep the implementation hidden from, the outside world. Such components exist at all levels in computing machines or systems, from the most basic hardware parts to the most sophisticated and abstract software levels.
FIG. 1 illustrates a typical model for a software component. Once a software application, such as a digital component 100 shown in FIG. 1, is compiled and linked into executable binary code, a user cannot make changes to the way the application behaves other than what has been identified and implemented by the application's design team.
FIG. 2 depicts a simple component interaction in a digital system application 190. The application 190 has a first component 200 and a second component 202. The first component 200 has an interface 206 that is used to communicate with an interface 208 of the second component 202. It is noted that the application 190 may be composed of any number of components and that there may be any number of interactions between the components. If the application 190 is implemented in software, the operation of the software is statically set once the software source code is translated into executable code.
Therefore, users and data publishers are reliant upon the original application designers to adequately define how an application will function. However, application designers cannot always predict the ways a user of the application may want to work with the application, or the ways a publisher of data for such applications may want the application to behave when using the data. Application designers can only make an educated guess as to the answers to these questions.
Therefore, there is a need for a system and a method for controlling the usage of digital objects for statically defined applications. Moreover, there is a need for an extensible system that will provide for the control of the usage of digital objects.